package com.zw.a.basic.a08.demo04_exercise;

import java.util.Scanner;

//案例: StringBuilder案例, 反转字符串.
//思路:  String对象 -> StringBuilder对象 -> 调用StringBuilder对象的reverse()方法 -> 重新换成String对象.
public class Demo07 {
    public static void main(String[] args) {
        //2.在main方法中键盘录入一个字符串, 调用上述的方法后, 在控制台输出结果.
        //3.例如: 键盘录入abc, 输出结果cba.
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个字符串: ");
        String str = sc.nextLine();
        //方式一: 调用自定义方法
        System.out.println(reverse(str));
        System.out.println("------------------------");

        //方式二: 链式编程.
        //思路:  String对象 -> StringBuilder对象 -> 调用StringBuilder对象的reverse()方法 -> 重新换成String对象.
        String reverseStr = new StringBuilder(str).reverse().toString();
        System.out.println(reverseStr);
    }

    //1.定义方法reverse(), 实现字符串的反转.
    public static String reverse(String s1) {
        //1. 把String -> StringBuilder对象.
        StringBuilder sb = new StringBuilder(s1);
        //2. 调用StringBuilder#reverse(), 反转内容.
        sb.reverse();
        //3. 把StringBuilder -> String, 然后返回.
        return sb.toString();
    }
}
